<?php
class UnidadesController extends AppController {

	var $uses = array('Unidade');
	var $helpers = array('Access');

	function index() {
		$this->Unidade->recursive = 0;
		$this->set('unidades', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid unidade', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('unidade', $this->Unidade->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->Unidade->create();
			if ($this->Unidade->save($this->data)) {
				$this->Session->setFlash(__('la unidad ha sido guardada', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The unidade could not be saved. Please, try again.', true));
			}
		}	
		$metodologias = $this->Unidade->Metodologia->find('list',array('fields'=>array('Metodologia.id','Metodologia.nombre')));
				
		$this->set(compact('metodologias'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid unidade', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Unidade->save($this->data)) {
				$this->Session->setFlash(__('La unidad ha sido actualizada', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('La Unidad fue guardada. Intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Unidade->read(null, $id);
		}
		
		$metodologias = $this->Unidade->Metodologia->find('list',array('fields'=>array('Metodologia.id','Metodologia.nombre')));		
		$grados = $this->Unidade->Grado->find('list',array('fields'=>array('Grado.id','Grado.nombre'), 
											  'conditions'=>array('Grado.metodologia_id'=>$this->data['Unidade']['metodologia_id'])));
		
		$cartillas = $this->Unidade->Cartilla->find('list',array('fields'=>array('Cartilla.id','Cartilla.nombre'), 
											  'conditions'=>array('Cartilla.grado_id'=>$this->data['Unidade']['grado_id'])));
		$modulos = $this->Unidade->Modulo->find('list',array('fields'=>array('Modulo.id','Modulo.nombre'), 
											  'conditions'=>array('Modulo.grado_id'=>$this->data['Unidade']['grado_id'])));
		$areas = $this->Unidade->Area->find('list',array('fields'=>array('Area.id','Area.nombre'), 
											  'conditions'=>array('Area.grado_id'=>$this->data['Unidade']['grado_id'])));
		$this->set(compact('metodologias','cartillas','modulos','areas', 'grados'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for unidade', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Unidade->delete($id)) {
			$this->Session->setFlash(__('Unidade deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Unidade was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function get_unidades_cartilla($cartilla = null){
		if( $cartilla != null ){
			$unidades = $this->Unidade->find("list", array("fields"=>array("Unidade.id", "Unidade.nombre"), 
															  "conditions"=>array("Unidade.cartilla_id"=>$cartilla)));
			
			$this->view = 'Json';
			$this->set(compact('unidades'));
			$this->set('json', 'unidades');
		}
	}
	
	function get_unidades_modulo($modulo = null){
		if( $modulo != null ){
			$unidades = $this->Unidade->find("list", array("fields"=>array("Unidade.id", "Unidade.nombre"), 
															  "conditions"=>array("Unidade.modulo_id"=>$modulo)));
			
			$this->view = 'Json';
			$this->set(compact('unidades'));
			$this->set('json', 'unidades');
		}
	}
	
	function get_unidades_area($area = null){
		if( $area != null ){
			$unidades = $this->Unidade->find("list", array("fields"=>array("Unidade.id", "Unidade.nombre"), 
															  "conditions"=>array("Unidade.area_id"=>$area)));
			
			$this->view = 'Json';
			$this->set(compact('unidades'));
			$this->set('json', 'unidades');
		}
	}
}
